---@meta _

---@class AceEvent-2.0 实现简单的事件处理、调度和插件间通信。
---[文档](https://web.archive.org/web/20071104080159/http://www.wowace.com/wiki/AceEvent-2.0)
local AceEvent = {}

---注册事件
---@param event string 事件名称
---@param method? function|string|boolean|number|nil 事件处理函数
---@param once? number|boolean|nil 是否只执行一次
function AceEvent:RegisterEvent(event, method, once) end

---注册所有事件
---@param method function|string 事件处理函数
function AceEvent:RegisterAllEvents(method) end

---注销事件
---@param event string 事件名称
function AceEvent:UnregisterEvent(event) end

---注销所有事件
function AceEvent:UnregisterAllEvents() end

---触发事件
---@param event string 事件名称
---@param... any 事件参数
function AceEvent:TriggerEvent(event, ...) end

---计划事件
---@param event string|function 事件名称
---@param delay number 延迟时间
---@param ... any 事件参数
---@return table
---@overload fun(self, name:string, event:string|function, delay:number, object:table, ...:any):table
function AceEvent:ScheduleEvent(event, delay, ...) end

---取消计划事件
---@param event string 事件名称
---@param delay table 计划事件
---@param ... any 事件参数
---@return table
function AceEvent:ScheduleRepeatingEvent(event, delay, ...) end

---取消计划事件
---@param t string|table 计划事件
---@return boolean cancel 是否成功取消
function AceEvent:CancelScheduledEvent(t) end

---取消所有计划事件
function AceEvent:CancelAllScheduledEvents() end

---是否已注册事件
---@param event string 事件名称
---@return boolean isRegistered 是否已注册
---@return table|nil method 事件
function AceEvent:IsEventRegistered(event) end

---是否已注册计划
---@param t string|table 计划事件
---@return boolean isRegistered 是否已注册
---@return table|nil method 事件
function AceEvent:IsEventScheduled(t) end

---注册存储桶事件
---@param event string|table 事件名称
---@param delay number 延迟时间
---@param method string|function|nil 事件处理函数
function AceEvent:RegisterBucketEvent(event, delay, method) end

---注销存储桶事件
---@param event string|table 事件名称
function AceEvent:UnregisterBucketEvent(event) end

---注销所有存储桶事件
function AceEvent:UnregisterAllBucketEvents() end

---是否已注册存储桶事件
---@param event string|table 事件名称
function AceEvent:IsBucketEventRegistered(event) end
